#ifndef DROPBEHAVIOR_H
#define DROPBEHAVIOR_H

#include "GameBehavior.h"
#include "Droppable.h"
#include "DropStep.h"
#include "Activatable.h"

class DropBehavior: public GameBehavior
{
public:
	DropBehavior();
	virtual ~DropBehavior();

	void SetActivator(GameObject* pitfall);

	virtual void GenerateSteps(Board& board);
	virtual void Execute();

protected:

private:
	void Clear();
	void AddStep(GameObject* object, Droppable* droppable);

	GameObject* activatableObject;
	Activatable* activatableInterface;
	std::list<GameStep*> steps;
};

#endif //DROPBEHAVIOR_H
